package com.hrt.day03.modier

/**
 * 权限修饰符
 */
object Modifier1 {
    def main(args: Array[String]): Unit = {
        val user = new User(10)
        println(user.a)
        
    }
}

/**
 * 对主构造器私有
 * private[modier] 表示在modier的包下可以访问
  */
class User private[modier](var age: Int) {
    
    private[modier] val a: Int = 10
    private val b: Int = 10
    
}

/**
权限修饰符:
java:
    public
    protected 同包和子类中使用 子类通过super的关键字进行调用,而不是通过实例直接调用
    [default] friendly 同包
    private 本类

scala:
    [default] 默认都是public
    protected 只能在子类中使用(同包内不行),
    private
    
 权限修饰的灵活性:
    可以定制
    private[包A]
    包A和包A所以子类都可以访问了
 */